// src/api/genealogy.ts
import request from './request';
import type { Person, GenealogyNodeDTO } from '@/types/api';

/**
 * 获取家谱的根人物
 * @param familyTreeId 家谱ID
 */
export const getRootsApi = (familyTreeId: number): Promise<Person[]> => {
    return request({ url: `/api/genealogy/roots/${familyTreeId}`, method: 'get' });
};

/**
 * 获取完整的家谱树结构
 * @param rootPersonId 根人物ID
 */
export const getFullTreeApi = (rootPersonId: number): Promise<GenealogyNodeDTO> => {
    return request({ url: `/api/genealogy/full-tree/${rootPersonId}`, method: 'get' });
};

/**
 * 获取单个家谱的图表数据 (之前遗漏的函数)
 * @param treeId 家谱ID
 */
export const getFamilyTreeChartDataApi = (treeId: number): Promise<GenealogyNodeDTO> => {
    // 这个接口通常需要先找到根，再获取树，这里我们假设后端有一个直接生成图表数据的接口
    // 如果后端没有，这里的逻辑会更复杂。我们先假设有一个 `/chart-data` 接口。
    // 如果您的后端实现是 getFullTree，那么图表组件应该先调用 getRootsApi，再调用 getFullTreeApi。
    // 为了简化，我们暂时让它调用 getRoots 然后获取第一个根的树。
    // 在实际项目中，最好有一个专门的后端接口。
    return request({ url: `/api/genealogy/full-tree-by-family/${treeId}`, method: 'get' }); // 假设有这样一个接口
};
